Enabling Programmer-controlled Combined Memory Consistency for Compiler Optimization
نویسندگان
چکیده
In this paper, we present a novel compiler technique that provides the capability to guarantee a different memory consistency model for different variables within the same shared memory parallel program. Programmers need only focus on their parallel algorithm and which variables can tolerate the use of old values, while the compiler automatically guarantees sequential consistency for all remaining variables and identifies where unnecessary synchronization overhead can be avoided. Program slicing is exploited to address the interactions between variables that can tolerate old values and those that require the most recent value to be read.
منابع مشابه
Performance Evaluation and Cost Analysis of Cache Protocol Extensions for Shared-Memory Multiprocessors
We evaluate three extensions to directory-based cache coherence protocols in shared-memory multiprocessors. These extensions are aimed at reducing the penalties associated with memory accesses and include a hardware prefetching scheme, a migratory sharing optimization, and a competitive-update mechanism. Since each extension targets distinct components of the read and write penalties, they can ...
متن کاملHiding the Java Memory Model with Compilers
The Java memory model is very diÆcult for programmers to understand, and there are several ways of interpreting the memory model. In addition, like most programming languages that follow the shared memory parallel programming model, non-deterministic behaviors due to data races can also occur in Java concurrent programs. Data races and synchronization make it impossible to apply classical compi...
متن کاملAutomatic Implementation of Programming Language Consistency Models
Concurrent threads of execution running on a shared memory system can access the same memory locations. A consistency model defines constraints on the order of these shared memory accesses. For good run-time performance, these constraints must be as few as possible. Programmers who write explicitly parallel programs must take into account the consistency model when reasoning about the behavior ...
متن کاملProgramming for Different Memory Consistency Models
The memory consistency model, or memory model, supported by a shared-memory multiprocessor directly affects its performance. The most commonly assumed memory model is sequential consistency (SC). While SC provides a simple model for the programmer, it imposes rigid constraints on the ordering of memory accesses and restricts the use of common hardware and compiler optimizations. To remedy the s...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003